(quail-title): Fix for the case that a title of an input method is
authorKenichi Handa <handa@m17n.org>
Mon, 5 Mar 2001 11:36:58 +0000 (11:36 +0000)
committerKenichi Handa <handa@m17n.org>
Mon, 5 Mar 2001 11:36:58 +0000 (11:36 +0000)
specified by a list of the same form as used in mode-line-format.

lisp/international/quail.el

index 6d26a01aa350433394bde70a1a70b9231a0fbda4..54712c31dcd15d966b596f624b5ffd49acd3e4e9 100644 (file)
@@ -127,7 +127,22 @@ See the documentation of `quail-define-package' for the other elements.")
   (nth 0 quail-current-package))
 (defsubst quail-title ()
   "Return the title of the current Quail package."
-  (nth 1 quail-current-package))
+  (let ((title (nth 1 quail-current-package)))
+    ;; TITLE may be a string or a list.  If it is a list, each element
+    ;; is a string or the form (VAR STR1 STR2), and the interpretation
+    ;; of the list is the same as that of mode-line-format.
+    (if (stringp title)
+       title
+      (condition-case nil
+         (mapconcat
+          (lambda (x) 
+            (cond ((stringp x) x)
+                  ((and (listp x) (symbolp (car x)) (= (length x) 3))
+                   (if (symbol-value (car x))
+                       (nth 1 x) (nth 2 x)))
+                  (t "")))
+          title "")
+       (error "")))))
 (defsubst quail-map ()
   "Return the translation map of the current Quail package."
   (nth 2 quail-current-package))